【JavaScript】暗黙のキャスト - 型の自動変換
JavaScriptの『暗黙のキャスト』について解説します。
検証環境
暗黙のキャスト
暗黙のキャストは“型を自動変換する仕組み”です。
通常、プログラムは異なる型同士の演算は実行できないため、キャストで型を統一する必要があります。
NumberやString、Booleanなどのラッパーオブジェクトを使ってコード上で明示的に型変換することを明示的なキャストと呼びます。
しかし、JavaScriptを含む一部のプログラミング言語には、暗黙のキャストがあるため、明示的なキャストを意識しなくても演算を実行できます。
サンプル
実際のプログラムで暗黙のキャストを確認します。
次のサンプルは数値と文字列の演算です。
let num = 3;
let str = "8";
___ih_hl_start
let result = num + str;
___ih_hl_end
console.log(result);
38
数値と文字列の加算演算では数値は文字列に自動で型変換されます。
そのため、4行目の演算では変数num
の数値3
は文字列型になり、+
は文字列結合の演算子として処理されるため、演算結果は38
になります。
優先順位
暗黙のキャストは統一する型に優先順位があります。
演算の種類により優先順位が変わり、一般的な数値と文字列における演算でご紹介します。
加算演算
加算演算を意味する加算演算子(+
)は上記サンプルで説明したように文字列に統一され、文字列結合として処理されます。
そのため、数値として加算演算する場合は明示的なキャストが必要です。
let num = 3;
let str = "8";
___ih_hl_start
let result = num + Number(str);
___ih_hl_end
console.log(result);
11
減算演算
減算演算の場合は、数値型に統一されます。
サンプル
let num = 3;
let str = "8";
___ih_hl_start
let result = num - str;
___ih_hl_end
console.log(result);
-5
乗算演算
乗算の場合は、数値型に統一されます。
サンプル
let num = 3;
let str = "8";
___ih_hl_start
let result = num * str;
___ih_hl_end
console.log(result);
24
除算演算
除算の場合は、数値型に統一されます。
サンプル
let num = 3;
let str = "8";
___ih_hl_start
let result = num / str;
___ih_hl_end
console.log(result);
0.375
剰余演算
剰余の場合は、数値型に統一されます。
サンプル
let num = 3;
let str = "8";
___ih_hl_start
let result = num % str;
___ih_hl_end
console.log(result);
3
累乗演算
累乗の場合は、数値型に統一されます。
サンプル
let num = 3;
let str = "8";
___ih_hl_start
let result = num ** str;
___ih_hl_end
console.log(result);
6561